const {
  getPetsDetail,
  sendRequest,
  getExamineList,
  getLikeList,
  getLike,
  delLike
} = require('../../api/pets')
// pages/petsDetail/petsDetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    detail_id: 0,
    petDetail: null,
    userList: [],
    islike: false,
    isExamine: undefined,
  },

  goToChatRoom() {
    if(wx.getStorageSync('user')){
      const roomId = wx.getStorageSync('user')._id;
      wx.navigateTo({
        url: `/pages/chatroom/chatroom?roomId=${roomId}&petId=${this.data.detail_id}` // 跳转到聊天页面
      });
    }else{
      wx.showToast({
        title: '请先登录',
      })
    }
  },

  send() {
    if (this.data.isExamine) {
      return
    }
    const user = wx.getStorageSync('user')

    if (user) {

      // socket
      // 创建 WebSocket 连接
      const socketTask = wx.connectSocket({
        url: 'ws://localhost:3300', // 服务器地址
        success: function (res) {
          console.log('WebSocket 连接成功', res);
        },
        fail: function (err) {
          console.log('WebSocket 连接失败', err);
        }
      });

      // 监听连接打开事件
      socketTask.onOpen(function (res) {
        console.log('WebSocket 连接已打开', res);
        // 发送消息
        socketTask.send({
          data: JSON.stringify({
            type: 'message1',
            title: '领养申请',
            message: `${user.username}（${user._id}）发送了一条申请`
          }),
          success: function (res) {
            console.log('消息发送成功', res);
          },
          fail: function (err) {
            console.log('消息发送失败', err);
          }
        });
      });

      // 监听消息接收事件
      socketTask.onMessage(function (res) {
        console.log('收到服务器消息', res.data);
      });

      // 监听连接关闭事件
      socketTask.onClose(function (res) {
        console.log('WebSocket 连接已关闭', res);
      });

      // 监听错误事件
      socketTask.onError(function (err) {
        console.log('WebSocket 连接错误', err);
      });
    }


    sendRequest(this.data.detail_id, this.data.petDetail.name, res => {
      // console.log(res);
      getExamineList(res => {
        // console.log(res.data);
        const user = wx.getStorageSync('user');
        this.setData({
          userList: res.data.list,
          isExamine: res.data.list.find(item => item.users[0]._id == user._id)
        })
        // console.log(this.data);
      }, this.data.detail_id)
    })

  },

  like() {
    if (this.data.islike) {
      this.setData({
        islike: false
      })
      delLike(res => {
        // console.log(res);
      }, this.data.detail_id)
    } else {
      this.setData({
        islike: true
      })
      getLike(res => {
        // console.log(res);
      }, this.data.detail_id)
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // console.log("page",options.page);
    this.setData({
      detail_id: options.id
    })
    getPetsDetail(res => {
      // console.log(res.data.findResAll.find(item => item._id == this.data.detail_id));
      this.setData({
        petDetail: res.data.findResAll.find(item => item._id == this.data.detail_id)
      })
    }, options.page)
    getExamineList(res => {
      // console.log(res.data);
      const user = wx.getStorageSync('user');
      this.setData({
        userList: res.data.list,
        isExamine: res.data.list.find(item => item.users[0]?._id == user._id)
      })
      // console.log(this.data);
    }, options.id)
    getLikeList(res => {
      // console.log(res.data.list);
      if (res.data.list) {
        this.setData({
          islike: res.data.list.find(item => item.pets[0]._id == this.data.detail_id) == undefined ? false : true
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})